package gui;

/**
 * @author name
 * @version 1.0
 */

import javax.swing.*;
import javax.swing.border.TitledBorder;

import java.awt.*;
import java.awt.event.*;

import fachlogik.Spieler;
import fachlogik.SpielerListe;

public class HauptFenster extends JFrame {

	private static final long serialVersionUID = -7701373905021988356L;

	private JButton btNeu = new JButton("Neuer Spieler");
	private JTextArea taAusgabe = new JTextArea();
	private JTextField tfVorname = new JTextField(15);
	private JTextField tfNachname = new JTextField(15);
	private JTextField tfPosition = new JTextField(15);
	private JList<Spieler> list;
	private DefaultListModel<Spieler> listmodel = new DefaultListModel<>();

	private SpielerListe spielerliste = new SpielerListe();

	public static void main(String[] args) {
		@SuppressWarnings("unused")
		HauptFenster hf = new HauptFenster();
	}

	public HauptFenster() {

		list = new JList<Spieler>(listmodel);
		list.addMouseListener(new MouseAdapter() {

			public void mouseClicked(MouseEvent e) {
				if (e.getClickCount() == 1) {
					tfVorname.setText(list.getModel()
							.getElementAt(list.getSelectedIndex()).getVorname());
					tfNachname.setText(list.getModel()
							.getElementAt(list.getSelectedIndex())
							.getNachname());
					tfPosition.setText(list.getModel()
							.getElementAt(list.getSelectedIndex())
							.getPosition());
					tfNachname.setEditable(false);
					tfVorname.setEditable(false);
					tfPosition.setEditable(false);
				}
			}

		});
		initComponents();
		setVisible(true);
		setSize(550, 350);
		setTitle("Spieler");

	}

	public void aktualisieren() {
		listmodel.clear();
		for (Spieler s : spielerliste.getArrayList())
			listmodel.addElement(s);
	}

	public void initComponents() {
		Container c = this.getContentPane();
		c.setLayout(new BorderLayout());

		JPanel oben = new JPanel();
		oben.setLayout(new BorderLayout());

		JPanel oben2 = new JPanel();
		oben2.setLayout(new GridLayout(4, 2));
		oben.add(oben2, BorderLayout.CENTER);
		btNeu.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				new SpielerAdd(spielerliste);
				aktualisieren();

			}

		});
		oben.add(btNeu, BorderLayout.NORTH);

		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);

		JMenu mnZeiterfassung = new JMenu("Datei");
		menuBar.add(mnZeiterfassung);

		JMenuItem btloeschen = new JMenuItem("L\u00F6schen");
		btloeschen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				actionPerformed(arg0);
			}
		});
		mnZeiterfassung.add(btloeschen);

		JMenuItem btspeichern = new JMenuItem("Speichern");
		mnZeiterfassung.add(btspeichern);

		JMenuItem btneu = new JMenuItem("Neu");
		mnZeiterfassung.add(btneu);

		JPanel pVor = new JPanel();
		pVor.setLayout(new FlowLayout(3));
		JLabel lbVor = new JLabel(" Vorname:          ");
		pVor.add(lbVor);
		pVor.add(tfVorname);
		oben2.add(pVor);
		tfVorname.setEditable(false);

		JPanel pNach = new JPanel();
		pNach.setLayout(new FlowLayout(3));
		JLabel lbNach = new JLabel("Nachname: ");
		pNach.add(lbNach);
		pNach.add(tfNachname);
		oben2.add(pNach);
		tfNachname.setEditable(false);

		JPanel pPos = new JPanel();
		pPos.setLayout(new FlowLayout(3));
		JLabel lbPos = new JLabel(" Position:          ");
		pPos.add(lbPos);
		pPos.add(tfPosition);
		oben2.add(pPos);
		tfPosition.setEditable(false);

		JScrollPane spUnten = new JScrollPane();

		c.add(oben, BorderLayout.NORTH);
		c.add(spUnten, BorderLayout.CENTER);

		JPanel panel = new JPanel();
		getContentPane().add(panel, BorderLayout.CENTER);
		panel.setLayout(new GridLayout(3, 0, 0, 0));
		panel.add(taAusgabe);

		list.setBorder(new TitledBorder(null, "Spielerliste", TitledBorder.TOP,
				TitledBorder.TOP));
		panel.add(list);

	}

}
